#include "graph.h"
#include<bits/stdc++.h>
using namespace std;
int d[205],lx[205],cnt=1,f[205][205],cn[205];
const int INF=1e9;
vector<int>qp[205];
stack<int>st,ts;
void inline dfs(int x,int y){
     int ds=NumberOfRoads();//cout<<"op"<<x<<" "<<lx[x]<<endl;
     for(int i=1;i<=ds;i++){if(i==lx[x])continue;
     Move(i,2);
     int cl=Color(),ls=LastRoad();
     if(cl==2){//cout<<"qwq"<<ls<<endl;
     ts=st;Move(ls,3);
     while(!st.empty()&&Color()!=3){Move(lx[st.top()],2);st.pop();}
     qp[st.top()].emplace_back(x);
     st=ts;Move(ls,2);
     }
     else if(cl==1){
     cnt++;lx[cnt]=LastRoad();qp[x].emplace_back(cnt);
     st.push(cnt);dfs(cnt,x);
     }
     else Move(ls,3);
     }
     st.pop();if(x!=1)Move(lx[x],3);
}
void Inspect(int R) {st.push(1);
    dfs(1,1);
    for(int i=1;i<=cnt;i++)
    for(int j=1;j<=cnt;j++)
    f[i][j]=INF;
    for(int i=1;i<=cnt;i++)
    for(int j:qp[i])f[i][j]=f[j][i]=1;
    for(int k=1;k<=cnt;k++)
    for(int i=1;i<=cnt;i++)
    for(int j=1;j<=cnt;j++)
    f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
    for(int i=1;i<=cnt;i++)
    for(int j=i+1;j<=cnt;j++)cn[f[i][j]]++;
    for(int i=1;i<=R;i++)
    Answer(i,cn[i]);
}
